package com.github.ecbp.user.service.service;

import com.github.ecbp.common.data.service.BaseService;
import com.github.ecbp.common.req.SimpleIdListStatusParam;
import com.github.ecbp.user.service.dto.RoleDto;
import com.github.ecbp.user.service.entity.TRole;
import com.github.ecbp.user.service.response.RoleRes;
import com.github.ecbp.user.service.vo.ListInfoVo;

import java.util.List;
import java.util.Set;

/**
 * <p>
 * 后台用户角色表 服务类
 * </p>
 *
 * @author zj2626
 * @since 2020-03-18
 */
public interface RoleService extends BaseService<TRole> {

    int create(RoleDto param);

    int updateSelectiveById(RoleDto param);

    int updateStatusById(SimpleIdListStatusParam param);

    /**
     * 通过角色ID查询正在使用的有效用户数量
     *
     * @param ids
     * @return java.util.List<com.ecbp.service.user.vo.ListInfoVo>
     * @author zj2626
     * @date 2020/5/12
     */
    List<ListInfoVo> pageInfoList(List<Long> ids);

    RoleRes getById(Long id);

    /**
     * 获取指定用户的权限
     *
     * @param adminId
     * @return java.util.List<com.ecbp.service.user.vo.RoleVo>
     * @author zj2626
     * @date 2020/5/12
     */
    List<RoleRes> getRoleListByAdminId(Long adminId);

    /**
     * 重新加载缓存中的用户权限
     *
     * @param ids
     * @return void
     * @author zj2626
     * @date 2020/5/12
     */
    void reloadUserPermission(Set<Long> ids);
}
